home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 August: Tool Chest / Dev.CD Aug 94.toast / Tool Chest / Interfaces / MPW Interfaces / PInterfaces / GestaltEqu.p < prev    next >
Encoding:
Text File  |  1993-09-17  |  13.8 KB  |  281 lines  |  [TEXT/MPS ]

  1. {
  2.     File:        GestaltEqu.p
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. }
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.     UNIT GestaltEqu;
  18.     INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingGestaltEqu}
  22. {$SETC UsingGestaltEqu := 1}
  23.  
  24. {$I+}
  25. {$SETC GestaltEquIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I $$Shell(PInterfaces)Types.p}
  29. {$ENDC}
  30. {$SETC UsingIncludes := GestaltEquIncludes}
  31.  
  32. CONST
  33.  
  34. {***********************
  35.  *    Gestalt error codes
  36.  ***********************}
  37. gestaltUnknownErr = -5550;              { value returned if Gestalt doesn't know the answer }
  38. gestaltUndefSelectorErr = -5551;        { undefined selector was passed to Gestalt }
  39. gestaltDupSelectorErr = -5552;          { tried to add an entry that already existed }
  40. gestaltLocationErr = -5553;             { gestalt function ptr wasn't in sysheap }
  41.  
  42. {*************************
  43.  *    Environment Selectors
  44.  *************************}
  45. gestaltVersion = 'vers';                { gestalt version }
  46. gestaltAddressingModeAttr = 'addr';     { addressing mode attributes }
  47. gestalt32BitAddressing = 0;             { using 32-bit addressing mode }
  48. gestalt32BitSysZone = 1;                { 32-bit compatible system zone }
  49. gestalt32BitCapable = 2;                { Machine is 32-bit capable }
  50. gestaltAliasMgrAttr = 'alis';           { Alias Mgr Attributes }
  51. gestaltAliasMgrPresent = 0;             { True if the Alias Mgr is present }
  52. gestaltAliasMgrSupportsRemoteAppletalk = 1; { True if the Alias Mgr knows about Remote Appletalk }
  53. gestaltAppleTalkVersion = 'atlk';       { appletalk version }
  54. gestaltAUXVersion = 'a/ux';             {a/ux version, if present }
  55. gestaltConnMgrAttr = 'conn';            { connection mgr attributes    }
  56. gestaltConnMgrPresent = 0;
  57. gestaltConnMgrCMSearchFix = 1;          { Fix to CMAddSearch?     }
  58. gestaltConnMgrErrorString = 2;             { has CMGetErrorString() }
  59. gestaltConnMgrMultiAsyncIO = 3;         { CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill }
  60. gestaltComponentMgr = 'cpnt';            { Component Mgr version }
  61. gestaltTSMgrVersion = 'tsmv';            { Text Services Mgr version, if present }
  62. gestaltCRMAttr = 'crm ';                { comm resource mgr attributes }
  63. gestaltCRMPresent = 0;
  64. gestaltCRMPersistentFix = 1;            { fix for persistent tools }
  65. gestaltCRMToolRsrcCalls = 2;            { has CRMGetToolResource/ReleaseToolResource }
  66. gestaltCTBVersion = 'ctbv';             { CommToolbox version }
  67. gestaltDBAccessMgrAttr = 'dbac';        { Database Access Mgr attributes }
  68. gestaltDBAccessMgrPresent = 0;          { True if Database Access Mgr present }
  69. gestaltDITLExtAttr = 'ditl';            { AppenDITL, etc. calls from CTB }
  70. gestaltDITLExtPresent = 0;              { True if calls are present }
  71. gestaltEasyAccessAttr = 'easy';         { Easy Access attributes }
  72. gestaltEasyAccessOff = 0;               { if Easy Access present, but off (no icon) }
  73. gestaltEasyAccessOn = 1;                { if Easy Access "On" }
  74. gestaltEasyAccessSticky = 2;            { if Easy Access "Sticky" }
  75. gestaltEasyAccessLocked = 3;            { if Easy Access "Locked" }
  76. gestaltEditionMgrAttr = 'edtn';         { Edition Mgr attributes }
  77. gestaltEditionMgrPresent = 0;           { True if Edition Mgr present }
  78. gestaltAppleEventsAttr = 'evnt';        { Apple Events attributes }
  79. gestaltAppleEventsPresent = 0;          { True if Apple Events present }
  80. gestaltFindFolderAttr = 'fold';         { Folder Mgr attributes }
  81. gestaltFindFolderPresent = 0;           { True if Folder Mgr present }
  82. gestaltFontMgrAttr = 'font';            { Font Mgr attributes }
  83. gestaltOutlineFonts = 0;                { True if Outline Fonts supported }
  84. gestaltFPUType = 'fpu ';                { fpu type }
  85. gestaltNoFPU = 0;                       { no FPU }
  86. gestalt68881 = 1;                       { 68881 FPU }
  87. gestalt68882 = 2;                       { 68882 FPU }
  88. gestalt68040FPU = 3;                    { 68040 built-in FPU }
  89. gestaltFSAttr = 'fs  ';                 { file system attributes }
  90. gestaltFullExtFSDispatching = 0;        { has really cool new HFSDispatch dispatcher }
  91. gestaltHasFSSpecCalls = 1;              { has FSSpec calls    }
  92. gestaltHasFileSystemManager = 2;        { has a file system manager }
  93. gestaltFXfrMgrAttr = 'fxfr';            { file transfer manager attributes }
  94. gestaltFXfrMgrPresent = 0;
  95. gestaltFXfrMgrMultiFile = 1;            { supports FTSend and FTReceive }
  96. gestaltFXfrMgrErrorString = 2;            { supports FTGetErrorString }
  97. gestaltHardwareAttr = 'hdwr';           { hardware attributes }
  98. gestaltHasVIA1 = 0;                     { VIA1 exists }
  99. gestaltHasVIA2 = 1;                     { VIA2 exists }
  100. gestaltHasASC = 3;                      { Apple Sound Chip exists }
  101. gestaltHasSCC = 4;                      { SCC exists }
  102. gestaltHasSCSI = 7;                     { SCSI exists }
  103. gestaltHasSoftPowerOff = 19;            { Capable of software power off }
  104. gestaltHasSCSI961 = 21;                    { 53C96 SCSI controller on internal bus }
  105. gestaltHasSCSI962 = 22;                    { 53C96 SCSI controller on external bus }
  106. gestaltHasUniversalROM = 24;            { Do we have a Universal ROM?}
  107. gestaltHelpMgrAttr = 'help';            { Help Mgr Attributes }
  108. gestaltHelpMgrPresent = 0;              { true if help mgr is present }
  109. gestaltHelpMgrExtensions = 1;           { true if help mgr extensions are installed }
  110. gestaltKeyboardType = 'kbd ';           { keyboard type }
  111. gestaltMacKbd = 1;
  112. gestaltMacAndPad = 2;
  113. gestaltMacPlusKbd = 3;
  114. gestaltExtADBKbd = 4;
  115. gestaltStdADBKbd = 5;
  116. gestaltPrtblADBKbd = 6;
  117. gestaltPrtblISOKbd = 7;
  118. gestaltStdISOADBKbd = 8;
  119. gestaltExtISOADBKbd = 9;
  120. gestaltADBKbdII = 10;
  121. gestaltADBISOKbdII = 11;
  122. gestaltPwrBookADBKbd = 12;
  123. gestaltPwrBookISOADBKbd = 13;
  124. gestaltLowMemorySize = 'lmem';          { size of low memory area }
  125. gestaltLogicalRAMSize = 'lram';         { logical ram size }
  126. gestaltMiscAttr = 'misc';               { miscellaneous attributes }
  127. gestaltScrollingThrottle = 0;           { true if scrolling throttle on }
  128. gestaltSquareMenuBar = 2;               { true if menu bar is square }
  129. gestaltMMUType = 'mmu ';                { mmu type }
  130. gestaltNoMMU = 0;                       { no MMU }
  131. gestaltAMU = 1;                         { address management unit }
  132. gestalt68851 = 2;                       { 68851 PMMU }
  133. gestalt68030MMU = 3;                    { 68030 built-in MMU }
  134. gestalt68040MMU = 4;                    { 68040 built-in MMU }
  135. gestaltStdNBPAttr = 'nlup';             { standard nbp attributes }
  136. gestaltStdNBPPresent = 0;
  137. gestaltNotificationMgrAttr = 'nmgr';    { notification manager attributes }
  138. gestaltNotificationPresent = 0;         { notification manager exists }
  139. gestaltNuBusConnectors = 'sltc';        { bitmap of NuBus connectors}
  140. gestaltOSAttr = 'os  ';                 { o/s attributes }
  141. gestaltSysZoneGrowable = 0;             { system heap is growable }
  142. gestaltLaunchCanReturn = 1;             { can return from launch }
  143. gestaltLaunchFullFileSpec = 2;          { can launch from full file spec }
  144. gestaltLaunchControl = 3;               { launch control support available }
  145. gestaltTempMemSupport = 4;              { temp memory support }
  146. gestaltRealTempMemory = 5;              { temp memory handles are real }
  147. gestaltTempMemTracked = 6;              { temporary memory handles are tracked }
  148. gestaltIPCSupport = 7;                  { IPC support is present }
  149. gestaltSysDebuggerSupport = 8;          { system debugger support is present }
  150. gestaltOSTable = 'ostt';                {  OS trap table base  }
  151. gestaltToolboxTable = 'tbtt';           {  OS trap table base  }
  152. gestaltExtToolboxTable = 'xttt';        { Extended Toolbox trap table base }
  153. gestaltLogicalPageSize = 'pgsz';        { logical page size }
  154. gestaltPowerMgrAttr = 'powr';           { power manager attributes }
  155. gestaltPMgrExists = 0;
  156. gestaltPMgrCPUIdle = 1;
  157. gestaltPMgrSCC = 2;
  158. gestaltPMgrSound = 3;
  159. gestaltPPCToolboxAttr = 'ppc ';         { PPC toolbox attributes }
  160.  
  161. {
  162.  * PPC will return the combination of following bit fields.
  163.  * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  164.  * indicates PPC is cuurently is only supports real time delivery
  165.  * and both incoming and outgoing network sessions are allowed.
  166.  * By default local real time delivery is supported as long as PPCInit has been called.}
  167.  
  168. gestaltPPCToolboxPresent = $0000;       { PPC Toolbox is present  Requires PPCInit to be called }
  169. gestaltPPCSupportsRealTime = $1000;     { PPC Supports real-time delivery }
  170. gestaltPPCSupportsIncoming = $0001;     { PPC will deny incoming network requests }
  171. gestaltPPCSupportsOutGoing = $0002;     { PPC will deny outgoing network requests }
  172. gestaltProcessorType = 'proc';          { processor type }
  173. gestalt68000 = 1;
  174. gestalt68010 = 2;
  175. gestalt68020 = 3;
  176. gestalt68030 = 4;
  177. gestalt68040 = 5;
  178. gestaltParityAttr = 'prty';             { parity attributes }
  179. gestaltHasParityCapability = 0;         { has ability to check parity }
  180. gestaltParityEnabled = 1;               { parity checking enabled }
  181. gestaltQuickdrawVersion = 'qd  ';       { quickdraw version }
  182. gestaltOriginalQD = $000;               { original 1-bit QD }
  183. gestalt8BitQD = $100;                   { 8-bit color QD }
  184. gestalt32BitQD = $200;                  { 32-bit color QD }
  185. gestalt32BitQD11 = $210;                { 32-bit color QDv1.1 }
  186. gestalt32BitQD12 = $220;                { 32-bit color QDv1.2 }
  187. gestalt32BitQD13 = $230;                { 32-bit color QDv1.3 }
  188. gestaltQuickdrawFeatures = 'qdrw';        { quickdraw features }
  189. gestaltHasColor = 0;                    { color quickdraw present }
  190. gestaltHasDeepGWorlds = 1;                { GWorlds can be deeper than 1-bit }
  191. gestaltHasDirectPixMaps = 2;            { PixMaps can be direct (16 or 32 bit) }
  192. gestaltHasGrayishTextOr = 3;            { supports text mode grayishTextOr }
  193. gestaltPhysicalRAMSize = 'ram ';        { physical RAM size }
  194. gestaltPopupAttr = 'pop!';              { popup cdef attributes }
  195. gestaltPopupPresent = 0;
  196. gestaltResourceMgrAttr = 'rsrc';        { Resource Mgr attributes }
  197. gestaltPartialRsrcs = 0;                { True if partial resources exist }
  198. gestaltScriptMgrVersion = 'scri';       { Script Manager version number    <08/05/89 pke> }
  199. gestaltScriptCount = 'scr#';            { number of active script systems    <08/05/89 pke> }
  200. gestaltSerialAttr = 'ser ';             { Serial attributes }
  201. gestaltHasGPIaToDCDa = 0;               { GPIa connected to DCDa}
  202. gestaltHasGPIaToRTxCa = 1;              { GPIa connected to RTxCa clock input}
  203. gestaltHasGPIbToDCDb = 2;               { GPIb connected to DCDb }
  204. gestaltSoundAttr = 'snd ';              { sound attributes }
  205. gestaltStereoCapability = 0;            { sound hardware has stereo capability }
  206. gestaltStereoMixing = 1;                { stereo mixing on external speaker }
  207. gestaltSoundIOMgrPresent = 3;           { The Sound I/O Manager is present }
  208. gestaltBuiltInSoundInput = 4;           { built-in Sound Input hardware is present }
  209. gestaltHasSoundInputDevice = 5;         { Sound Input device available }
  210. gestaltPlayAndRecord = 6;                { built-in hardware can play and record simultaneously }
  211.                                         { the following bits are not defined prior to Sound Mgr 3.0 }
  212. gestaltPlayFromDisk = 7;                { play from disk available, set by Sound Mgr 3.0 and later }
  213. gestaltMultiChannels = 8;                { multiple channel support, set by Sound Mgr 3.0 and later }
  214. gestaltStandardFileAttr = 'stdf';       { Standard File attributes }
  215. gestaltStandardFile58 = 0;              { True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported }
  216. gestaltTextEditVersion = 'te  ';        { TextEdit version number            <08/05/89 pke> }
  217. gestaltTE1 = 1;                         { TextEdit in MacIIci ROM <8Aug89smb> }
  218. gestaltTE2 = 2;                         { TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> }
  219. gestaltTE3 = 3;                         { TextEdit with 6.0.4 Script Systems all but MacIIci <8Aug89smb> }
  220. gestaltTE4 = 4;                         { TextEdit in System 7.0 }
  221. gestaltTE5 = 5;                         { TextWidthHook available in TextEdit }
  222. gestaltTermMgrAttr = 'term';            { terminal mgr attributes }
  223. gestaltTermMgrPresent = 0;
  224. gestaltTermMgrErrorString = 2;
  225. gestaltTimeMgrVersion = 'tmgr';         { time mgr version }
  226. gestaltStandardTimeMgr = 1;             { standard time mgr is present }
  227. gestaltRevisedTimeMgr = 2;              { revised time mgr is present }
  228. gestaltExtendedTimeMgr = 3;             { extended time mgr is present }
  229. gestaltVMAttr = 'vm  ';                 { virtual memory attributes }
  230. gestaltVMPresent = 0;                   { true if virtual memory is present }
  231. gestaltDictionaryMgrAttr = 'dict';        { Dictionary Manager attributes }
  232. gestaltDictionaryMgrPresent = 0;
  233. gestaltIconUtilities = 'icon';            { Icon Utilities attributes }
  234. gestaltIconUtilitiesPresent = 0;         { true if icon utilities are present }
  235.  
  236. {************************
  237.  *    Info-only selectors
  238.  ***********************}
  239. gestaltMachineType = 'mach';            { machine type }
  240. kMachineNameStrID = -16395;
  241. gestaltClassic = 1;
  242. gestaltMacXL = 2;
  243. gestaltMac512KE = 3;
  244. gestaltMacPlus = 4;
  245. gestaltMacSE = 5;
  246. gestaltMacII = 6;
  247. gestaltMacIIx = 7;
  248. gestaltMacIIcx = 8;
  249. gestaltMacSE030 = 9;
  250. gestaltPortable = 10;
  251. gestaltMacIIci = 11;
  252. gestaltMacIIfx = 13;
  253. gestaltMacClassic = 17;
  254. gestaltMacIIsi = 18;
  255. gestaltMacLC = 19;
  256. gestaltQuadra900 = 20;
  257. gestaltPowerBook170 = 21;
  258. gestaltQuadra700 = 22;
  259. gestaltClassicII = 23;
  260. gestaltPowerBook100 = 24;
  261. gestaltPowerBook140 = 25;
  262. gestaltQuadra950 = 26;
  263. gestaltMacLCII = 37;
  264. gestaltPowerBook145 = 54;
  265. gestaltMachineIcon = 'micn';            { machine icon }
  266. gestaltROMSize = 'rom ';                { rom size }
  267. gestaltROMVersion = 'romv';             { rom version }
  268. gestaltSystemVersion = 'sysv';          { system version}
  269.  
  270. FUNCTION Gestalt(selector: OSType;VAR response: LONGINT): OSErr;
  271. FUNCTION NewGestalt(selector: OSType;gestaltFunction: ProcPtr): OSErr;
  272. FUNCTION ReplaceGestalt(selector: OSType;gestaltFunction: ProcPtr;VAR oldGestaltFunction: ProcPtr): OSErr;
  273.  
  274.  
  275. {$ENDC}    { UsingGestaltEqu }
  276.  
  277. {$IFC NOT UsingIncludes}
  278.     END.
  279. {$ENDC}
  280.  
  281.